Manual do Motor de Fórmulas

Manual Técnico do Motor de Fórmulas

Documento de Referência da Arquitetura de Fórmulas e Dicionário Completo de Campos do ERP

1. Visão Geral da Arquitetura do Motor

O motor fiscal do ERP opera baseado em uma linguagem interpretada estruturada semelhante ao Pascal/Clipper. Ele permite a customização dinâmica de Bases de Cálculo, Alíquotas e Valores de tributos (ICMS, IPI, PIS, COFINS, ISS, etc.) e regras de negócio diversas, utilizando variáveis de cabeçalho e de itens.

2. Sintaxe, Comandos e Operadores

2.1. Comandos Estruturais

Comando Sintaxe Descrição e Aplicação
SETVAR SETVAR(Nome, Tipo, Valor); Declara e atribui variáveis na memória local.
Tipos válidos:
N: Numérico (moeda, percentuais, quantidades)
C: Caractere / Texto (UF, flags, CST)
D: Data
B: Booleano (Verdadeiro / Falso)
SE SE(Condicao, SeVerdadeiro, SeFalso) Operador condicional ternário utilizado para desvios de cálculo e validação de parâmetros.
FORMULA FORMULA(Codigo) Executa modularmente o resultado de outra fórmula cadastrada no sistema.
MENSAGEM MENSAGEM("Texto") Exibe uma caixa de diálogo em tela para conferência e depuração de variáveis.
COPIAR / FCPY COPIAR(Texto, Inicio, Fim) Extrai caracteres de um texto (ex.: verificar primeiros dígitos de um CFOP ou CNPJ).
FDESC FDESC(Valor, CasasDecimais) Retorna o valor numérico arredondado para o número de casas decimais informado.
FLEN FLEN(Texto) Retorna a quantidade de caracteres contidos em uma string.
SOMAITEM SOMAITEM(Expressao) Retorna a soma acumulada de uma expressão executada em todos os itens do movimento.
FPAR FPAR(Parametro, Tipo) Retorna um parâmetro global definido no Módulo Configurador do sistema.

2.2. Operadores Aritméticos, Relacionais e Pontuação

Operador Função Exemplo de Uso
+ , - , * , / Operações aritméticas básicas (ITQT * ITPU) - ITDC
^ Exponenciação / Potência VALOR ^ 2
( ) Controle de precedência matemática ((BASE - IMP) / (1 - (ALIQ / 100)))
; Finalizador de instrução (obrigatório) SETVAR(X, N, 10);
= , <> , # Igualdade e Diferença (<> e # são idênticos) SE(TABNAT(DIFAL,C) = "T", 1, 0)
< , <= , > , >= Operadores relacionais de magnitude SE(VALOR > 0, VALOR, 0)
E , OU , NAO Operadores lógicos booleanos SE(A = 0 E B > 0, ..., ...)

3. Dicionário de Funções e Variáveis do ERP

3.1. Variáveis do Item e Tributos do Item (Prefixo IT...)

Variável / Função Sintaxe Descrição
ITPUITPUPreço unitário do item do movimento.
ITQTITQTQuantidade do item do movimento.
ITDCITDCValor nominal do desconto concedido na linha do item.
ITPDITPDPercentual de desconto do item.
ITACITACValor nominal do acréscimo da linha do item.
ITPAITPAPercentual de acréscimo do item.
ITVTITVTValor total líquido da linha do item.
ITPTITPTPreço de tabela do item do movimento.
ITP2ITP2Preço unitário 2 do item do movimento.
ITMLITMLMargem de lucro do item do movimento.
ITSQITSQNúmero sequencial do item dentro do movimento (1, 2, 3...).
ITTAITTA(Tributo)Retorna a alíquota do tributo no item (ex.: ITTA(PIS)).
ITTBITTB(Tributo)Retorna a base de cálculo apurada do tributo no item (ex.: ITTB(COFINS)).
ITTVITTV(Tributo)Retorna o valor financeiro apurado do tributo no item.
ITTDITTD(Tributo)Retorna o valor de dedução do tributo do item.
ITSBITSB(Tributo)Soma da base de cálculo do tributo de todos os itens do movimento.
ITSVITSV(Tributo)Soma do valor do tributo de todos os itens do movimento.
ITSVCONDITSVCOND(Trib, Campo, Valor)Soma o valor do tributo de todos os itens sob uma condição específica.

3.2. Variáveis de Rateios Comerciais por Linha

Variável Descrição
RATEIOFRETEValor do frete rateado proporcionalmente para a linha do item.
RATEIODESPValor de outras despesas acessórias rateadas proporcionalmente para a linha do item.
RATEIOSEGUROValor do seguro rateado proporcionalmente para a linha do item.
RATEIODESCValor do desconto global do cabeçalho rateado para a linha do item.
RATEIOEXTRA1..4Rateios de despesas e valores extras 1 a 4 do cabeçalho para o item.
RATEIOVALORMOVRATEIOVALORMOV(Campo) - Retorna o rateio de qualquer campo customizado do cabeçalho.

3.3. Variáveis de Cabeçalho do Movimento (Prefixo MV...)

Variável Descrição Variável Descrição
MVTPValor Total dos ProdutosMVVBValor Bruto Global
MVVLValor Líquido GlobalMVVDValor Desconto Global
MVVFValor Frete GlobalMVVGValor Seguro Global
MVVSValor Despesas GlobaisMVVOValor Outros / Diversos
MVDIValor Desconto dos ItensMVDVValor Desconto de Venda
MVBC(Trib)Base de Cálculo do MovimentoMVVT(Trib)Valor do Tributo no Movimento
MVTA(Trib)Alíquota do MovimentoMVTFTipo Frete (1=Emitente, 2=Dest.)
MVNONatureza de Operação (Cód.)MVSE / MVNRSérie / Número do Movimento
MVFLCód. Filial do MovimentoMVFD / MVFEFilial Destino / Filial Entrega
MVCFCód. Cliente/FornecedorMVC2Cód. Responsável
MVNMNome Cliente ConsumidorMVRP / MVVECód. Representante / Vendedor
MVPA / MVEPPlaca do Veículo / UF PlacaMVPB / MVPLPeso Bruto / Peso Líquido
MVQT / MVNTQtd. Volumes / Nº VolumesMVES / MVMAEspécie / Marca Volumes
MVOA..MVOFObservações Abert./Fech.MVS1 / MVSPStatus Movimento / Pedido
MVDE / MVDSData Emissão / Entrada-SaídaMVDM / MVDTData Movimento / Data Entrega

3.4. Funções de Consulta a Cadastros e Tabelas (Prefixo TAB...)

Função Sintaxe Finalidade e Uso Fiscal
TABNAT TABNAT(Campo) Lê campos gerais da Natureza de Operação vinculada.
TABNATIT TABNATIT(Campo, Tipo) Lê parâmetros específicos da regra do item na Natureza.
TABREGRAT TABREGRAT(Campo, Tipo) Retorna valores da regra de tributação vinculada ao item.
TABREGRATTRIB TABREGRATTRIB(Campo, Tipo, Tributo) Retorna parâmetros tributários específicos da regra (CST, Alíquotas).
TABETD TABETD(Campo, Tipo) Retorna campos da tabela do Estado (UF) vinculada ao cliente.
TABETDUF TABETD(Campo, Tipo, UF) Busca parâmetros estaduais fornecendo a sigla da UF diretamente.
TABPROD TABPROD(Campo, Tipo) Consulta dados vitais do produto (NCM, Origem da Mercadoria, Peso).
TABPRODCOMPOS TABPRODCOMPOS(Campo) Retorna informações de custos e preços de itens compostos.
TABCLIFOR TABCLIFOR(Campo, Tipo) Consulta informações complementares do cliente/fornecedor.
CESTPORESTADO CESTPORESTADO(CEST, ESTADO) Busca tabela cruzada de CEST vs Estado de Destino.

3.5. Funções de Data, Conversão e Sistema

Função Sintaxe Descrição
HOJE / DATAHOJEData atual do sistema operacional.
ANO / MES / DIAANO(DATA), MES(DATA), DIA(DATA)Extrai partes numéricas de uma data.
ALIQALIQ(Tributo)Retorna a alíquota padrão cadastrada no módulo de tributos.
CDSTRBMOVCDSTRBMOV(Trib, Tipo, Campo)Retorna propriedades tributárias de controle interno.
FATCONVFATCONVFator de conversão entre unidades de medida comercial/tributável.
USUARIOUSUARIOIdentificação do usuário logado na sessão ativa.

4. Integração com a Tela de Natureza de Operação

Para buscar os valores preenchidos visualmente pelo usuário na aba da Natureza de Operação (Identificação, Regra de Tributação, Abas de Tributos), utilize as funções de leitura TABNAT e TABNATIT, mapeando o nome interno do banco de dados.

Aba / Campo da Interface Visual Identificador Interno / Função de Leitura Recomendada
Flags da Aba Identificação (ex: Checkboxes genéricos) TABNAT(NomeDoCampo, C) → Retorna "T" (marcado) ou "F" (desmarcado)
Alíquotas e Percentuais Normais da Regra do Item TABNATIT(NomeDaAliquota, N)
Fatores de Redução de Base TABNATIT(NomeDaReducao, N)
Margens e Pautas Arbitradas TABNATIT(NomeDaMargemOuPauta, N)
Flags Específicas do Item (ex: Não considerar tributos próprios) TABNATIT(NomeDaFlag, C) → Retorna "T" ou "F"
Nenhum resultado encontrado para essa pesquisa.

Créditos: Victor Soares da Silva Supervisor de Suporte